package com.yanqu.road.entity.activity.seacraft;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.DataStatus;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @Description 海上争霸之南海丝路 跨服 玩家数据
 * @Author cwq
 * @Data 2022/1/20 11:21
 */
@FieldTypeAnnotation(tableName = "t_c_activity_seacraft_southsea_user")
public class SeacraftSouthSeaCrossUserData extends DataObject {
    @FieldTypeAnnotation(desc = "活动id", select = true, update = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "玩家id", select = true, update = true)
    private long userId;
    @FieldTypeAnnotation(desc = "区服id")
    private long serverId;
    @FieldTypeAnnotation(desc = "联盟id")
    private String unionId;
    @FieldTypeAnnotation(desc = "积分")
    private int score;
    @FieldTypeAnnotation(desc = "本轮突袭次数")
    private int raidAttackTimes;
    @FieldTypeAnnotation(desc = "刷新轮次(刷新 本轮进攻次数、本轮突袭次数 用)")
    private int round;
    @FieldTypeAnnotation(desc = "玩家攻击过的联盟次数 （判断一键挑战用）")
    private int attackNum;
    @FieldTypeAnnotation(desc = "锁定的船员信息 k:阵容类型，v:阵容门客集合")
    private Map<Integer, SeacraftSouthSeaTeamInfo> shipMemberMap = new ConcurrentHashMap<>();
    @FieldTypeAnnotation(desc = "玩家自己的捐献情况 k:部件 v：捐献数量")
    private Map<Integer, Long> donationShipMap = new ConcurrentHashMap<>();
    @FieldTypeAnnotation(desc = "竞猜信息 k:南海丝路轮次 从1 开始 v:竞猜的联盟集合")
    private Map<Integer, SeacraftSouthSeaGuessInfo> guessMap = new ConcurrentHashMap<>();
    @FieldTypeAnnotation(desc = "宝库格子数据")
    private List<SeacraftSouthSeaCellInfo> cellInfoList = new ArrayList<>();
    @FieldTypeAnnotation(desc = "当前层数")
    private int floor;
    @FieldTypeAnnotation(desc = "是否通关过 0否 1 是")
    private int gotBigReward;
    @FieldTypeAnnotation(desc = "本轮使用加速道具详情")
    private Map<Integer,SeacraftSouthSeaUseSpeedUpInfo> useSpeedUpInfoMap = new ConcurrentHashMap<>();

    public int getActivityId() {
        return activityId;
    }
    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public long getServerId() {
        return serverId;
    }
    public void setServerId(long serverId) {
        if (this.serverId != serverId) {
            this.serverId = serverId;
            setOp(DataStatus.Update);
        }
    }

    public String getUnionId() {
        return unionId;
    }
    public void setUnionId(String unionId) {
        if (unionId == null){
            return;
        }
        if (this.unionId == null || !this.unionId.equals(unionId)) {
            this.unionId = unionId;
            setOp(DataStatus.Update);
        }
    }

    public int getScore() {
        return score;
    }
    public void setScore(int score) {
        if (this.score != score) {
            this.score = score;
            setOp(DataStatus.Update);
        }
    }

    public int getRaidAttackTimes() {
        return raidAttackTimes;
    }
    public void setRaidAttackTimes(int raidAttackTimes) {
        if (this.raidAttackTimes != raidAttackTimes) {
            this.raidAttackTimes = raidAttackTimes;
            setOp(DataStatus.Update);
        }
    }

    public int getRound() {
        return round;
    }
    public void setRound(int round) {
        if (this.round != round) {
            this.round = round;
            setOp(DataStatus.Update);
        }
    }

    public int getAttackNum() {
        return attackNum;
    }
    public void setAttackNum(int attackNum) {
        if (this.attackNum != attackNum) {
            this.attackNum = attackNum;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.seacraft.SeacraftSouthSeaTeamInfo> getShipMemberMap() {
        return shipMemberMap;
    }
    public void setShipMemberMap(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.seacraft.SeacraftSouthSeaTeamInfo> shipMemberMap) {
        if (null == shipMemberMap){
            return;
        }
        if (this.shipMemberMap == null || !this.shipMemberMap.equals(shipMemberMap)) {
            this.shipMemberMap = shipMemberMap;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, java.lang.Long> getDonationShipMap() {
        return donationShipMap;
    }
    public void setDonationShipMap(java.util.Map<java.lang.Integer, java.lang.Long> donationShipMap) {
        if (null == donationShipMap){
            return;
        }
        if (this.donationShipMap == null || !this.donationShipMap.equals(donationShipMap)) {
            this.donationShipMap = donationShipMap;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.seacraft.SeacraftSouthSeaGuessInfo> getGuessMap() {
        return guessMap;
    }
    public void setGuessMap(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.seacraft.SeacraftSouthSeaGuessInfo> guessMap) {
        if (null == guessMap){
            return;
        }
        if (this.guessMap == null || !this.guessMap.equals(guessMap)) {
            this.guessMap = guessMap;
            setOp(DataStatus.Update);
        }
    }
    public java.util.List<com.yanqu.road.entity.activity.seacraft.SeacraftSouthSeaCellInfo> getCellInfoList() {
        return cellInfoList;
    }
    public void setCellInfoList(java.util.List<com.yanqu.road.entity.activity.seacraft.SeacraftSouthSeaCellInfo> cellInfoList) {
        if (null == cellInfoList){
            return;
        }
        if (this.cellInfoList == null || !this.cellInfoList.equals(cellInfoList)) {
            this.cellInfoList = cellInfoList;
            setOp(DataStatus.Update);
        }
    }

    public int getFloor() {
        return floor;
    }
    public void setFloor(int floor) {
        if (this.floor != floor) {
            this.floor = floor;
            setOp(DataStatus.Update);
        }
    }


    public int getGotBigReward() {
        return gotBigReward;
    }

    public void setGotBigReward(int gotBigReward) {
        if (this.gotBigReward != gotBigReward) {
            this.gotBigReward = gotBigReward;
            setOp(DataStatus.Update);
        }
    }

    public Map<Integer, SeacraftSouthSeaUseSpeedUpInfo> getUseSpeedUpInfoMap() {
        return useSpeedUpInfoMap;
    }

    public void setUseSpeedUpInfoMap(Map<Integer, SeacraftSouthSeaUseSpeedUpInfo> useSpeedUpInfoMap) {
        if (null == useSpeedUpInfoMap){
            return;
        }
        if (this.useSpeedUpInfoMap == null || !this.useSpeedUpInfoMap.equals(useSpeedUpInfoMap)) {
            this.useSpeedUpInfoMap = useSpeedUpInfoMap;
            setOp(DataStatus.Update);
        }
    }
}
